home *** CD-ROM | disk | FTP | other *** search
- ;The form data structure:
- ; fb_prim requires that form_length be the first entry.
- form struc
- form_length dw ? ;* + [*] -> next *
- name_length dw ? ;length in bytes of form name.
- hash_link dw ? ;link to next item that hashes to this.
- form_pointer dw ? ;number of bytes into the form so far.
- data_length dw ? ;number of bytes of data.
- form ends
-
- ;note that (size form) + name_length + data_length do not necessarily add
- ; up to form_length. The data length might be less than the maximum available
- ; to a form.
-
- name_offset equ (size form)
-
- free_space equ 200
-
- NIL equ -1
-
- sgap equ 80h
-
- mark_overhead equ 3 ;one mark byte + one pointer (3 bytes total)
-
- ;see if di is still below actptr. If it isn't, we've run out of memory and
- ; must abort.
- chk_actptr macro
- cmp di,actptr
- jb $+5
- jmp nomem
- endm
-
- ;see if di+cx is still below actptr. If it isn't, we've run out of memory and
- ; must abort.
- chk_actptr_cnt macro
- push di
- add di,cx
- cmp di,actptr
- pop di
- jb $+5
- jmp nomem
- endm
-
- ;make di point to fbgn and push a copy of it.
- ;this macro is used by functions that return a value and don't need their
- ; arguments. More efficient than di_points_fend.
- di_points_fbgn macro
- mov di,fbgn
- dec di
- push di
- endm
-
- ;make di point to fend and push a copy of it.
- ;this macro is used by functions that need their arguments.
- di_points_fend macro
- mov di,fend
- add di,2
- push di
- endm
-